using System;

namespace DMS.Web.Messages
{
	/// <summary>
	/// Clase que representa un mensaje
	/// </summary>
	public class Message
	{
		internal Message(string text, MessageSeverity severity)
		{
			Text = text;
			Severity = severity;
		}

		/// <summary>
		/// Constructor a partir de una exception
		/// </summary>
		/// <param name="e">Exception a partir de la cual se construye el mensaje</param>
		public Message(Exception e)
		{
			Severity = MessageSeverity.Error;

			Text = e.Message;
			Exception inner = e.InnerException;
			while (inner!=null)
			{
				Text = inner.Message;
				inner = inner.InnerException;
			}
		}

		/// <summary>
		/// Exception original
		/// </summary>
		public Exception Error { get; private set; }

		/// <summary>
		/// Severidad del mensaje
		/// </summary>
		public MessageSeverity Severity { get; private set; }

		/// <summary>
		/// Texto explicativo del mensaje
		/// </summary>
		public string Text { get; internal set; }
	}
}